Video streaming under LAN/WAN environments has gained significant importance as new applications and usage models are introduced. Consumers have enjoyed watching video streaming and/or listening to audio streaming from their desktops or laptops, creating a new paradigm from how the traditional media are consumed. In addition to personal digital video entertainment environments, video streaming has also found acceptance in corporate environments as video conferencing and distance learning become increasingly popular.
Unfortunately, the popularity of video streaming has placed a significant burden on the available bandwidth of existing network infrastructures. In traditional web based applications, meaningful data can be sent or received in a burst mode. For example, a user using the web browser may click on an URL link invoking a website to update the user's web page. The network communication between the web browser and the intended website may last until the web page is updated or until the user refreshes its browser by selecting another URL. However, unlike traditional web based applications, the streaming audio/video data must be sent to a client (viewer) in a continuous stream once a connection between the client and the server is established. If the amount of data flow is not maintained above a certain level (or, equivalently a minimum throughput), the video may appear to have stopped because the decoder does not have enough data to act upon (decoder). The video will resume once the data becomes available again. This phenomenon is known as the video jitter.
Unlike traditional video broadcasts where video information is transmitted in an analog domain, the streaming video information must be converted to digital format, hence IP packets, prior to transmission over an IP network, such as home network (LAN) or the Internet (WAN). However, a simple conversion of video from an analog domain to a digital domain does not immediately enable the user to transmit the video over the IP network since the required video bandwidth is greater than those most existing networks allow. For example, a standard household television running at the rate of standard 30 frames per second (according to national television standard committee) and having 720×480 pixels where each pixel requires 2 bytes for color presentation, the minimum throughput for a full screen video transmission without any data compression would be around 19.78 MBps or 158 Mbps. Clearly, this requirement exceeds the capacity of a typical LAN (10/100 Mbps) can support. Therefore, sending raw video footage through a conventional network is not practical, or at the very least, live video transmission on the network is difficult with the current technology. Therefore, compressing the video data prior to transmitting the data over the IF network becomes a requirement.
Various video compression techniques have been introduced and continuously improved. Some of the most notable ones are MPEG, H.261, H.263 and H.264. However, even with these compression engines, a constant throughput is still required to send the streaming video from a server to a display client. Unfortunately, the LAN/WAN was designed as a “Best Effort” medium, meaning that it attempts to get the data to from the source (server) to the sink (client) in the least amount of time as possible, but without guaranteed.
When the minimum throughput requirement is not satisfied, video jitters may appear during the playback. Methods, such as allocating buffers on both the client and the server, are widely used in video-on-demand (VOD) applications to address the video jitters inherent in streaming videos. A content provider (or, equivalently server) in a typical VOD application may retransmit the video data as requested by the display client due to packet loss or corruptions during transit. This technique may obviate the video jitters and enhance the viewing experience. However, this method, although serves the purpose of VOD, may introduce a significant delay in applications where a real-time viewing is required. Some of the real time applications, such as live video broadcast, security monitoring, and video conferencing, may be time-sensitive in that the server cannot send the video data more than once.
To overcome the network's “Best Effort” behavior while managing the network traffic more effectively and predictably, different QoS (Quality of Service) approaches have been developed. For example, in one approach, a priority flag may be placed in the stream header allowing a streaming application to receive a higher level of service from routers and other applications (DiffServ). In another approach, a streaming application may broadcast its service requirements to the network via a reservation request (IntServ). In general, the streaming applications based on the QoS-award routers may use resource reservation setup protocol (RSVP) as their end-to-end signaling protocol. Unfortunately, these approaches cannot guarantee that every hop between the server and the client has facilities to support or understand these protocols and, as a consequence, may fail to achieve the continuous data flow requirement of those mission critical applications.
Thus, there is a strong need for a system that can transmit video data in real time across conventional networks, while the minimum threshold requirement is satisfied during the data transmission to maintain a video quality acceptable to human visual perception.